package com.gome.axwl.aoc.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.gome.axwl.aoc.entity.po.CsApplyInfoForListPo;
import com.gome.axwl.aoc.entity.po.CsApplyInfoParmPo;
import com.gome.axwl.aoc.entity.po.CsApplyInfoPo;

/**
 * @Description: csApplyInfo service
 * @Auther: yinyuxin@gome.com.cn
 * @Date: 2018/7/16 10:30
 */
public interface CsApplyinfoService {

    /**
     * 根据id查询单表csApplyinfo
     * @param id
     * @return
     */
    CsApplyInfoPo queryById(Integer id);

    /**
     * 根据id查询申请单详情（包含关联的对象）
     * @param id
     * @return
     */
    CsApplyInfoPo queryWithAssociateById(Integer id);

    /**
     * 新增记录（单表）
     * @param csApplyInfoPo
     */
    void insert(CsApplyInfoPo csApplyInfoPo);

    /**
     * 修改记录（单表）
     * @param csApplyInfoPo
     */
    void update(CsApplyInfoPo csApplyInfoPo);

    /**
     * 根据id删除记录（逻辑删除）
     * @param id
     */
    void deleteById(Integer id);


    /**
     * 根据settleName模糊查询
     * @param settleName
     * @return
     */
    List<String> querySettleName(String settleName);

    /**
     * 查询审批列表
     * @param csApplyInfoParmPo
     * @return
     */
    PageInfo<CsApplyInfoForListPo> queryApplyListForApproval(CsApplyInfoParmPo csApplyInfoParmPo,Integer pageNum,Integer pageSize);


    /**
     * 全字段查询记录（没有查关联对象）
     * @param csApplyInfoPo
     * @return
     */
    PageInfo<CsApplyInfoPo> queryApplyInfoBySelective(CsApplyInfoPo csApplyInfoPo,Integer pageNum,Integer pageSize);

    /**
     * 获取 待运营审批的单子
     * @return
     */
    List<CsApplyInfoPo> queryApplyInfoForApprovalRemind();

    List<CsApplyInfoPo> queryByIds(List<Integer> ids);

}
